home *** CD-ROM | disk | FTP | other *** search
- #!vsl
-
- // $Id: math,v 1.1.1.1 1995/05/01 15:48:50 zeller Exp $
- // a few math demos
-
- // $Log: math,v $
- # Revision 1.1.1.1 1995/05/01 15:48:50 zeller
- # DDD 0.9 distribution
- #
- // Revision 9.3 1993/06/25 12:01:47 zeller
- // Fix: Kommentare Log-Datei angepasst
- //
- // Revision 9.2 1993/05/22 20:22:40 zeller
- // %Q% added by apply-q-flag.sh 1.5
- //
- // Revision 9.1 1991/07/08 06:01:53 zeller
- // Installierte Version
- //
- // Revision 8.1 1991/07/06 15:04:55 zeller
- // Installierte Version
- //
- // Revision 4.1 1991/05/25 12:52:41 zeller
- // Neue Version mit folgenden Eigenschaften:
- // Let- und Where-Konstrukten;
- // Lokalen und globalen Funktionen, Overloading;
- // Erweiterten Fehlermeldungen.
- //
- // Revision 3.1 1991/02/27 02:11:11 zeller
- // Umstellung auf neue Syntax (fast ganz wieder die alte)
- //
- // Revision 1.5 1991/02/10 18:25:23 zeller
- // Letzte Definition muss global sein, um nicht geloescht zu werden
- //
- // Revision 1.4 1991/02/04 20:20:45 zeller
- // digit(), num() jetzt in std.vsl
- //
- // Revision 1.3 1991/01/23 19:21:03 zeller
- // Umstellung auf Pattern-Matching
- //
- // Revision 1.2 1991/01/23 18:18:54 zeller
- // fak() mit Matching auf Konstanten neu definiert
- //
- // Revision 1.1 1991/01/23 18:12:09 zeller
- // Initial revision
- //
-
- #include <std.vsl>
-
- start = 0;
- end = 12;
-
- // factorial
- fak(0) = 1;
- fak(1) = 1;
- fak(a) = a * fak(a-1);
-
- // list of factorials
- faks(end) = 0;
- faks(a) =
- num(a) & "! = " & num(fak(a))
- | faks(a + 1);
- faks() = faks(start);
-
- // powers
- power(a, 0) = 1;
- power(a, 1) = a;
- power(a, b) = a * power(a, b-1);
-
- // list of powers
- powers(end, b) = 0;
- powers(a, b) =
- num(a) & "^" & num(b) & " = " & num(power(a, b))
- | powers(a + 1, b);
- powers(b) = powers(start, b);
-
- math_main() =
- " " & faks() & " " & powers(2) & " " & powers(3) & " " & powers(4);
- math_main(...) -> math_main();
-